#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include <assert.h>

//strcat
//int main()
//{
//	char arr1[] = "Hello";
//	char arr2[20] = "Wo\0rld";
//	strcat(arr2, arr1);
//	printf("%s", arr2);
//	return 0;
//}

//模拟实现strcat函数：
#include <stdio.h>
#include <assert.h>
//
//char* my_strcat(char* dest, const char* scr)
//{
//    char* ret = dest;
//    assert(dest && scr);
//    // 找目标空间的 \0
//    while (*dest != '\0') {
//        dest++;
//    }
//    // 拷贝
//    while (*dest++ = *scr++) {
//        ;
//    }
//    return ret;
//}
//
//int main()
//{
//    char arr1[] = "abc";
//    char arr2[20] = "defc";
//    char* ret = my_strcat(arr2, arr1);
//    // 直接使用 ret 作为参数
//    printf("%s\n", ret);
//    return 0;
//}

//strcmp
//int main()
//{
//	char arr1[] = "abcq";
//	char arr2[] = "abcd";
//	int ret = strcmp(arr1, arr2);
//	//printf("%d\n", ret);
//	if (ret > 0) {
//		printf(">\n");
//	}
//	else {
//		printf("<=\n");
//	}
//	return 0;
//}

//模拟strcmp
//int my_strcmp(const char* arr1, const char* arr2)
//{
//	assert(arr1 && arr2);
//
//	while (*arr1 == *arr2) {
//		if (*arr1 == '\0') {
//			return 0;
//		}
//		arr1++;
//		arr2++;
//	}
//	return (*arr1 - *arr2);
//}
//
//int main()
//{
//	char arr1[] = "abcqe";
//	char arr2[] = "abcde";
//	int ret = my_strcmp(arr1, arr2);
//
//	printf("%d\n", ret);
//	return 0;
//}


//strncpy:拷⻉num个字符从源字符串到⽬标空间。
//int main()
//{
//	char arr1[20] = "abcdef";
//	char arr2[20] = "xxxxxxxxxxx";
//
//	strncpy(arr2, arr1, 8);
//	printf("%s\n", arr2);
//
//	return 0;
//}

//strncat;将source指向字符串的前num个字符追加到destination指向的字符串末尾，再追加⼀个 \0 
//int main()
//{
//	char str1[20];
//	char str2[20];
//	strcpy(str1, "To be ");
//	strcpy(str2, "or not to be");
//	strncat(str1, str2, 6);
//	printf("%s\n", str1);
//	return 0;
//}


//strncmp包括<0、=0、>0
//int main()
//{
//	char arr1[] = "abcdef";
//	char arr2[] = "abcbef";
//	int ret = strncmp(arr1, arr2, 3);
//	printf("%d\n", ret);
//	return 0;
//}


//strstr：用于在一个字符串中查找另一个子字符串第一次出现的位置。
#include <stdio.h>
#include <string.h>

//int main() {
//    const char* haystack = "Hello, world!";
//    const char* needle = "world";
//    char* result = strstr(haystack, needle);
//
//    if (result != NULL) {
//        printf("找到了子字符串，位置是: %ld\n", result - haystack);
//    }
//    else {
//        printf("未找到子字符串\n");
//    }
//
//    return 0;
//}